package com.cloud.api.file.feign;

import com.cloud.api.file.domain.FileUseDTO;
import com.cloud.common.core.constant.ServiceNameConstants;
import com.cloud.common.core.result.Result;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;


@FeignClient(contextId = "remoteFileService",value = ServiceNameConstants.FILE)
public interface RemoteFileService {

    /**
     * 使用文件
     * @param fileDTO   文件
     * @return
     */
    @PostMapping("/useFile")
    Result<?> useFile(FileUseDTO fileDTO);

    /**
     * 删除文件
     * @param objectId     业务的id
     * @param objectType   业务的类型 一般使用列的名称 如 img_code
     * @return
     */
    @GetMapping("/delete")
    Result<?> delete(@RequestParam(value="objectId") String objectId,
                      @RequestParam(value="objectType") String objectType);


    /**
     * 获取文件
     * @return
     */
    @GetMapping("/fileInfo")
    Result<?> info(@RequestParam(value="objectId") String fileIdOrUrl);

}
